
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

-- Crea vista ocupa_cargo
-- drop view ocupa_cargo
create view [dbo].[ocupa_cargo] as
SELECT	distinct sa.idServicioAgente as ocu_cargo_id,
		sa.FechaAlta as ocu_cargo_fecha_designacion,
		--tab_categoria_id ver donde esta ese dato
		a.Documento  AS pers_documento,
		--(SELECT DISTINCT plaza FROM tb_SubserviciosAgentes WHERE ServicioAgente = sa.idServicioAgente) AS cargos_id,
		case p.finalidad when 12 then p.idplaza else null end as cargos_id,--case p.finalidad when 12 then MIN(p.idplaza) else null end as cargos_id,
		CASE a.Sexo  
			WHEN 1 THEN 'F'
			WHEN 2 THEN 'M'
		END	AS pers_sexo,
		cs.idCategoriaSARH as tab_categoria_id, --sa.CargoSalarial as tab_categoria_id,
		cs.idCargoSARH as tab_cargo_id, --sa.CargoSalarial as tab_cargo_id,
		sa.CausaBaja as tab_motivo_baja_id,
		n.TipoNorma as tab_instrumento_legal_id,
		n1.TipoNorma as tab_inst_legal_baja_id,
		n1.Descripcion as ocu_cargo_nro_inst_legal_baja,
		so.organismo_id_sarrhh as organismo_id, --sa.SubOrganizacion as organismo_id, min(so.organismo_id_sarrhh) as organismo_id, --so.idSubOrganizacion as organismo_id,  -- ver con organismo en la vista....Algunos registros tienen plaza nula
		sa.Agrupamiento as tab_Agrupam_id,
		case  SituacionRevista  
				when 1 then 3 --Titular  --s.idsage,
				when 2 then 4 --Interino
				when 4 then 5 --Suplente
				when 15 then 6 --Personal permanente ??
				when 7 then 7 --Personal temporario ??
				--when 1 then 8 --En Disponibilidad con goce de haberes => titular
				--when 7 then 10 --Contratado ??
				--when 7 then 15 --Agrupamiento político
				--when 7 then 19 --Transitoria
				when 15 then 22 --Planta Permanente
				when 10 then 37 --Transferido OSC
				when 11 then 39 --Tranferido BANCO
				--when 1 then 41 --Disponibilidad reubicado
				--when 7 then 42 --Precaria
				else 1 
		end as tab_sit_rev_id,
		sa.Horas as ocu_cargo_horas_semanales,
		n.Descripcion as ocu_cargo_nro_instrumento_lega,
		ssa.Nivel as tab_niv_esc_id,--MIN(ssa.Nivel) as tab_niv_esc_id,
		d.Curso as ocu_cargo_grado_ano,
		d.Division as ocu_cargo_seccion_division,
		p.Asignatura as tab_materia_id,
		sa.FechaBaja as ocu_cargo_fecha_baja,
		p.Horas as ocu_cargo_nivel,
		sa.Edificio as edificio_id,
		sa.Edificio as edificio_id_anexo,
		null as ocu_cargo_bloqueado, --case sa.Liquida when 'S' then 0 else 1 end as ocu_cargo_bloqueado,
		case sa.Liquida when 'S' then 1 else 0 end as ocu_cargo_activo,
		d.GrupoCarreras as plan_estudio_id,
		sa.Transferido as ocu_cargo_transferido
FROM	tb_ServiciosAgentes sa left outer join tb_CargosSalariales cs on (sa.CargoSalarial = cs.idCargo)
		left outer join tb_Normas n on (sa.NormaAlta = n.idNorma)
		left outer join tb_Normas n1 on (sa.NormaBaja = n1.idNorma)		
		left outer join tb_SubserviciosAgentes ssa on (ssa.ServicioAgente = sa.idServicioAgente)
		left outer join tb_Plazas p on (ssa.plaza = p.idPlaza)
		left join tb_SubOrganizaciones so on (p.SubOrganizacion = so.idSubOrganizacion)	
		left outer join tb_Divisiones d on (p.Division = d.idDivision)	
		left outer join tb_Agentes a on (sa.agente = a.idAgente)
		/*
group by	sa.idServicioAgente,
			sa.FechaAlta,
			a.Documento,
			p.Finalidad,
			a.Sexo,
			cs.idCategoriaSARH,
			cs.idCargoSARH,
			sa.CausaBaja,
			n.TipoNorma,
			n1.TipoNorma,
			n1.Descripcion,
			sa.Agrupamiento,
			SituacionRevista  ,
			sa.Horas,
			n.Descripcion,
			d.Curso,
			d.Division,
			p.Asignatura,
			p.FechaBaja,
			p.Horas,
			sa.Edificio,
			sa.Edificio,
			sa.Liquida,
			d.GrupoCarreras
			*/				

/*
select ocu_cargo_id, organismo_id from RRHH_15..OCUPA_CARGO where pers_documento='24960552' ORDER BY ocu_cargo_id
select ocu_cargo_id, organismo_id,organismo_id1 from OCUPA_CARGO where pers_documento='24960552' order by ocu_cargo_id

select * from tb_cargossalariales
select * from tb_plazas
select * from tb_serviciosagentes
select * from tb_subserviciosagentes
select * from rrhh_15..ocupa_cargo
select * from cargos
select * from rrhh_15..tab_cargo
select idservicioagente,count(*) from tb_serviciosagentes group by idServicioAgente having count(*)>1


select * from tb_Agentes where Documento='24960552'

select * from tb_serviciosagentes where agente=31053
select * from tb_subserviciosagentes where ServicioAgente=174210

select * from ocupa_cargo where pers_documento=24960552 order by ocu_cargo_id
select * from rrhh_15..ocupa_cargo where pers_documento=24960552 order by ocu_cargo_id

*/
GO
